Skip to content

HDDS-15634. Avoid updating container delete transaction ID on SCM delete log append#10566

Open
xichen01 wants to merge 3 commits into
apache:masterfrom
xichen01:HDDS-15634
Open

HDDS-15634. Avoid updating container delete transaction ID on SCM delete log append#10566
xichen01 wants to merge 3 commits into
apache:masterfrom
xichen01:HDDS-15634

Conversation

@xichen01

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Reduce long-tail latency of OM allocateBlock

When SCM handles DeleteScmKeyBlocks requests, AllocateScmBlock can see high tail latency because SequenceIdGenerator#getNextId waits for SCMStateMachine to finish applying DeleteScmKeyBlocks's DeletedBlockLogStateManagerImpl#addTransactionsToDB.

Profiling shows a large part of DeletedBlockLogStateManagerImpl#addTransactionsToDB time is spent updating SCM-side ContainerInfo#deleteTransactionId.
This field is not used by current SCM business logic, while DN-side delete transaction tracking is maintained independently.

This commit removes the SCM-side ContainerInfo#deleteTransactionId update from addTransactionsToDB to reduce unnecessary StateMachine apply work and improve write tail latency.

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-15634

How was this patch tested?

existing test

https://github.com/xichen01/ozone/actions/runs/27909174625

@xichen01 xichen01 changed the title HDDS-15634. Avoid updating container delete transaction ID on SCM del… HDDS-15634. Avoid updating container delete transaction ID on SCM delete log append Jun 21, 2026

@ivandika3 ivandika3 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @xichen01 . Overall LGTM.

How about we deprecate the ContainerInfo deleteTransactionId entirely by marking proto and fields to be deprecated and adding some comments? Also we might just remove the ContainerManager#updateDeleteTransactionId

@xichen01

Copy link
Copy Markdown
Contributor Author

Thanks @xichen01 . Overall LGTM.

How about we deprecate the ContainerInfo deleteTransactionId entirely by marking proto and fields to be deprecated and adding some comments? Also we might just remove the ContainerManager#updateDeleteTransactionId

deprecate ContainerInfo deleteTransactionId and ContainerStateManagerImpl#updateDeleteTransactionId

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants